<<<<<<< .mine
package su.fishr.effects.flySquares 
{
	import flash.events.Event;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.events.TimerEvent;
	
	import com.greensock.*;
	import com.greensock.easing.*;
	/**
	 *  Расширяет класс VFlySquares()
	 * обеспечивая анимацию strict-режима.
	 * - подкладывает закрытое маской конечное изображение
	 *   по место позиционирования фрагментов,
	 * - в ходе сложения столбцов/строк надвигает непрозрач-
	 *   ную часть маски на конечное изображения постепенно
	 *   открывая его и скрадывая артефакты просветов между
	 *   фрагментами
	 *   
	 * @author fish_r
	 */
	internal class VFlySquaresStrict extends VFlySquares 
	{
	
	/**-------------------------------------------------------------------------------
	* 
	* 	
	* 
	*						V A R I A B L E ' S  	
	*
	* 
	* 
	* --------------------------------------------------------------------------------
	*/
		
		private var _mask:Bitmap;
		private var _background:Bitmap;
		
	/**-------------------------------------------------------------------------------
	* 
	*	   						P R O P E R T I E S 
	*
	* --------------------------------------------------------------------------------
	*/
	//{
		
		override public function get rate():Number
		{
			return super._rate;
		}
		
		
	//}
	
		
		
	/**-------------------------------------------------------------------------------
	* 
	* 	
	* 
	*						C O N S T R U C T O R 	
	*
	* 
	* 
	* --------------------------------------------------------------------------------
	*/
		public function VFlySquaresStrict(obj:MFlySquares) 
		{
			super(obj);
			
		}
	
	/**-------------------------------------------------------------------------------
	* 
	* 	
	* 
	*						O V E R R I D E ' S 	
	*
	* 
	* 
	* --------------------------------------------------------------------------------
	*/
		override protected  function init(e:Event):void
		{
			
			super.init(e);	
			
			_background = new Bitmap(super._mFlySquares.dObject.bitmapData, "auto", true);
			_background.x += super._mFlySquares.rectShift.x;
			_background.y = super._mFlySquares.rectShift.y;
			this.addChild(_background);
			
			_mask = createMask();
			_mask.x = _background.x;
			_mask.y = _background.y;
			
			
			
			
			if (super._cFlySquares.vertical === true )
			{
				_mask.height = 0;
				_mask.y = _background.height;
			}
			else _mask.width = 0;
			
			_background.mask = _mask;

			this.addChild( _mask );
			
			
		}
		
		override protected function endTweenListener(obj:Bitmap):void 
		{

			if ( obj === null ) return;
			
			for (var i:int = 0; i < super._mFlySquares.lastFr.length; i++ )
			{
				if ( obj.y === super._mFlySquares.lastFr[i].y && obj.x === super._mFlySquares.lastFr[i].x )
				{
					if (super._cFlySquares.vertical === true )
					{
						_mask.height = _background.height - obj.y;
						_mask.y = obj.y;
						
					}
					else _mask.width = obj.x + obj.width;
					
					super._mFlySquares.lastFr.slice(i, 1);
				}
			}
			
			super.endTweenListener(obj);
			
		}
		
		
		override protected function endWorkListener(e:Event = null):void 
		{
			_background.mask = null;
			
			if (this.contains( _background ) )
			{
				this.removeChild(_mask);
				this.removeChild( _background );
			}
			
			super.endWorkListener();
			
			
			_mask.bitmapData.dispose();
			_mask = null;
			
		}

		
		
	/**-------------------------------------------------------------------------------
	* 
	* 	
	* 
	*						P R I V A T E ' S
	*
	* 
	* 
	* --------------------------------------------------------------------------------
	*/
		/**
		 *  
		 * @return битмапу которая используется в качестве маски
		 * переданного отобр. содержимого.
		 */
		private function createMask():Bitmap
		{
			var bitmapData_:BitmapData = new BitmapData(_background.width, _background.height, false , 0xFF0000);
			var bitmap_:Bitmap = new Bitmap(bitmapData_);
			return bitmap_;
		}
	}

}=======
package su.fishr.effects.flySquares 
{
	import flash.events.Event;
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.events.TimerEvent;
	
	import com.greensock.*;
	import com.greensock.easing.*;
	/**
	 *  Расширяет класс VFlySquares()
	 * обеспечивая анимацию strict-режима.
	 * - подкладывает закрытое маской конечное изображение
	 *   по место позиционирования фрагментов,
	 * - в ходе сложения столбцов/строк надвигает непрозрач-
	 *   ную часть маски на конечное изображения постепенно
	 *   открывая его и скрадывая артефакты просветов между
	 *   фрагментами
	 *   
	 * @author fish_r
	 */
	internal class VFlySquaresStrict extends VFlySquares 
	{
	
	/**-------------------------------------------------------------------------------
	* 
	* 	
	* 
	*						V A R I A B L E ' S  	
	*
	* 
	* 
	* --------------------------------------------------------------------------------
	*/
		
		private var _mask:Bitmap;
		private var _background:Bitmap;
		
	/**-------------------------------------------------------------------------------
	* 
	*	   						P R O P E R T I E S 
	*
	* --------------------------------------------------------------------------------
	*/
	//{
		
		override public function get rate():Number
		{
			return super._rate;
		}
		
		
	//}
	
		
		
	/**-------------------------------------------------------------------------------
	* 
	* 	
	* 
	*						C O N S T R U C T O R 	
	*
	* 
	* 
	* --------------------------------------------------------------------------------
	*/
		public function VFlySquaresStrict(obj:MFlySquares) 
		{
			super(obj);
			
		}
	
	/**-------------------------------------------------------------------------------
	* 
	* 	
	* 
	*						O V E R R I D E ' S 	
	*
	* 
	* 
	* --------------------------------------------------------------------------------
	*/
		override protected  function init(e:Event):void
		{
			
			super.init(e);	
			
			_background = new Bitmap(super._mFlySquares.dObject.bitmapData, "auto", true);
			_background.x += super._mFlySquares.rectShift.x;
			_background.y = super._mFlySquares.rectShift.y;
			this.addChild(_background);
			
			_mask = createMask();
			_mask.x = _background.x;
			_mask.y = _background.y;
			
			
			
			
			if (super._cFlySquares.vertical === true )
			{
				_mask.height = 0;
				_mask.y = _background.height;
			}
			else _mask.width = 0;
			
			
			
			
		}
		
		override protected function endTweenListener(obj:Bitmap):void 
		{

			if ( obj === null ) return;
			
			for (var i:int = 0; i < super._mFlySquares.lastFr.length; i++ )
			{
				if ( obj.y === super._mFlySquares.lastFr[i].y && obj.x === super._mFlySquares.lastFr[i].x )
				{
					if (super._cFlySquares.vertical === true )
					{
						_mask.height = _background.height - obj.y;
						_mask.y = obj.y;
						
					}
					else _mask.width = obj.x + obj.width;
					
					super._mFlySquares.lastFr.slice(i, 1);
				}
			}
			
			super.endTweenListener(obj);
			
		}
		
		
		override protected function endWorkListener(e:Event = null):void 
		{
			_background.mask = null;
			
			if (this.contains( _background ) )
			{
				this.removeChild(_mask);
				this.removeChild( _background );
			}
			
			super.endWorkListener();
			
			
			_mask.bitmapData.dispose();
			_mask = null;
			
		}

		override protected function initTweenBombListener():void 
		{
			 addMask();
		}
		
		override protected function addFragmentListener(e:Event):void 
		{
			if (! super.propBomb ) addMask();
			
			super.addFragmentListener(e);
		}
		
	/**-------------------------------------------------------------------------------
	* 
	* 	
	* 
	*						P R I V A T E ' S
	*
	* 
	* 
	* --------------------------------------------------------------------------------
	*/
		/**
		 *  
		 * @return битмапу которая используется в качестве маски
		 * переданного отобр. содержимого.
		 */
		private function createMask():Bitmap
		{
			var bitmapData_:BitmapData = new BitmapData(_background.width, _background.height, false , 0xFF0000);
			var bitmap_:Bitmap = new Bitmap(bitmapData_);
			return bitmap_;
		}
		
		private function addMask():void
		{
			_background.mask = _mask;

			this.addChild( _mask );
		}
	}

}>>>>>>> .r1349
